#include "TypeInitializerBase.h"

#include "TokenClassMetaManager.h"

namespace MOE
{
	namespace System
	{
		namespace NonIntrusive
		{
			TypeInitializerBase::TypeInitializerBase(tTokenType tokenValue)
				: mTypeTokenValue(tokenValue)
				, mParentTokenValue()
				, mClassName()
				, mClassSize(0)
			{
			}

			Core::ClassMeta* TypeInitializerBase::CreateClassMeta(TokenClassMetaManager* manager)
			{
				if (manager == nullptr)
				{
					return nullptr;
				}

				return manager->CreateClassMeta(mTypeTokenValue, mParentTokenValue, mClassName.c_str(), mClassSize);
			}
		}
	}
}
